iT邦幫忙

2022 iThome 鐵人賽

DAY 10
0
Modern Web

clojure 刷刷鍋系列 第 10

Clojure 肉片 -第 10 塊

  • 分享至 

  • xImage
  •  

【心得】

  1. defn 接收不定數量的所有參數做法 [& args]
  2. (reduce + (1 2)) 的錯誤看了 5min 才發現得讓 () 變成 list 才行 -> (reduce + '(1 2))

【今日湯底】

Write a function that finds the sum of all its arguments.

eg:

(sum 1 2 3) ; => 6
(sum 8 2) ; => 10
(sum 1 2 3 4 5) ; => 15

(必須通過以下測試)

(ns summation-test
  (:require [clojure.test :refer :all]
            [summation :refer [sum]]))

(deftest simple-tests
  (is (sum 1) 1)
  (is (sum 1 2) 3)
  (is (sum 5 7 9) 21)
  (is (sum 12 1 1 1 1) 16)
  (is (sum 12 1 1 1 1 1 1) 18))

【我的答案】

(ns summation)

(defn sum [& n]
  (reduce + n)
  )

思路:

  1. 查了才知道 [& n] 可以處理不論多少參數都收在 n 裡面的作法
  2. n 會是 list,就用上老方法

【其他人的答案】

(ns summation)
(def sum +)

上一篇
Clojure 肉片 -第 9 塊
下一篇
Clojure 肉片 -第 11 塊
系列文
clojure 刷刷鍋30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言